package classes;

import javax.swing.JOptionPane;

/**
 * Classe que exibe uma Popup
 *
 * @author Jonas Gualberto Diel
 */
public class Popup
{
    /*
     * Erro 'e'
     * Informação 'i'
     * Advertência 'a'
     * Pergunta 'p'
     */
    final private static String iconTypes = "eiap";
    final public static char ERRO = 'e';
    final public static char INFO = 'i';
    final public static char ALERTA = 'a';
    final public static char PERGUNTA = 'p';

    private Popup()
    {
        // Construtor vazio e privado
    }

    /**
     * Obtém a instancia
     *
     * @return instancia
     */
    public static Popup obterInstancia()
    {
        return (new Popup());
    }

    /**
     * Exibe mensagem
     *
     * @param mensagem
     */
    public void exibirMensagem( String mensagem )
    {
        exibirMensagem(mensagem, "Mensagem", 'i');
    }

    /**
     * Exibe mensagem
     *
     * @param mensagem
     * @param tipo
     */
    public void exibirMensagem( String mensagem, char tipo )
    {
        exibirMensagem(mensagem, "Mensagem", tipo);
    }

    /**
     * Exibe mensagem
     *
     * @param mensagem
     * @param titulo
     * @param tipo
     */
    public void exibirMensagem( String mensagem, String titulo, char tipo )
    {
        JOptionPane.showMessageDialog(null, mensagem, titulo, Popup.iconTypes.indexOf(tipo));
    }

    /**
     * Pedir confirmação
     *
     * @param mensagem
     * @return janela de confirmação
     */
    public boolean pedirConfirmacao( String mensagem )
    {
        return (pedirConfirmacao(mensagem, "Confirmação", 'p'));
    }

    /**
     * Pedir confirmação
     *
     * @param mensagem
     * @param tipo
     * @return janela de confirmação
     */
    public boolean pedirConfirmacao( String mensagem, char tipo )
    {
        return (pedirConfirmacao(mensagem, "Confirmação", tipo));
    }

    /**
     * Pedir confirmação
     *
     * @param mensagem
     * @param titulo
     * @param tipo
     * @return janela de confirmação
     */
    public boolean pedirConfirmacao( String mensagem, String titulo, char tipo )
    {
        String[] opcoes =
        {
            "Sim",
            "Não"
        };
        int opcaoPadrao = 0;
        int escolha = JOptionPane.showOptionDialog(null, mensagem, titulo,
                                                   JOptionPane.YES_NO_OPTION, Popup.iconTypes.
            indexOf(tipo), null, opcoes, opcoes[opcaoPadrao]);

        return (escolha == 0);
    }
}